﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Common
{
    /// <summary>
    /// 过滤非法字符以及判断是否存在非法字符
    /// </summary>
    public class BadChar
    {
        public const string badCharString = ",|;|:|'|\"|<|>|[|]|{|}|@@|*|&|=|+|(|)";
        /// <summary>
        /// 直接过滤字符中的非法内容str:需要过滤的字符串
        /// </summary> 
        public static string ReplaceBadChar(string str)
        {
            return ReplaceBadChars(str, badCharString);
        }
        /// <summary>
        /// 直接过滤字符中的非法内容(str:需要过滤的字符串-badchar:需要验证的字符组，用|隔开)
        /// </summary>
        public static string ReplaceBadChars(string str, string badchar)
        {
            string[] arrBadChar = badchar.Split('|');
            foreach (string ss in arrBadChar)
            {
                if (str.IndexOf(ss) >= 0 && ss.Length > 0)
                { str = str.Replace(ss, ""); }
            }
            return str;
        }
        /// <summary>
        /// 验证字符串中是否包含非法内容(str:需要验证的字符串)
        /// </summary>
        public static bool IsBadChar(string str)
        {
            string checkChar = ",|;|:|'|\"|<|>|[|]|{|}|@@|*|&|=|+|(|)";
            return IsBadChars(str, checkChar);
        }
        /// <summary>
        /// 验证字符串中是否包含非法内容(str:需要验证的字符串-badchar:需要验证的字符组，用|隔开)
        /// </summary>
        public static bool IsBadChars(string str, string badchar)
        {
            string[] arrBadChar = badchar.Split('|');
            foreach (string ss in arrBadChar)
            {
                if (str.IndexOf(ss) >= 0 && ss.Length > 0)
                { return true; }
            }
            return false;
        }
        /// <summary>
        /// 对数据进行HTML编码(str:需要HTML编码的字符串)
        /// </summary>
        public static string HTMLEncode(string str)
        {
            return System.Web.HttpUtility.HtmlEncode(str);
        }
        /// <summary>
        /// 对数据进行HTML编码(str:需要反HTML编码的字符串)
        /// </summary>
        public static string HTMLDecode(string str)
        {
            return System.Web.HttpUtility.HtmlDecode(str);
        }
    }
}
